-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Add Dirichlet process mixture model #999
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Dirichlet process mixture model #999
Conversation
@twiecki can you go ahead and merge this - my understanding was you had to build something yourself to get this kinda stuff into the website. 👍 |
@AustinRochford This is really neat, I've been wanting an example like this for a long time. It's great to see that the truncation works so well and is moreover very easy to implement in pymc3. I'm going to merge this but it might be worthwhile to think of making this a bit more user-friendly in pymc3. For example, the model parts of the DP mixture could easily be their own function (similar to what I did here: #701). Also, the PPC plots are really instructive but I wonder if there's perhaps a way to use the existing ppc functionality we already have in pymc3. Anyway, as I said that would be just frosting (and who doesn't like frosting). |
…-example Add Dirichlet process mixture model
@twieck thanks, I'll see what I can to to make it a bit cleaner. I haven't used pymc3's PPC functionality much yet so I tend to forget about it! I was also pleased to see how well truncation worked, because I really try not to write too many custom samplers by hand. Even though some of the Chinese restaurant process-based Gibbs samplers for the DP are quite clever, I prefer to use pymc3 where possible. I would also be interested in writing about DP mixtures for clustering, but to get interesting (read: multidimensional) examples I think #535 will need to be resolved. |
@springcoil a quick search for "Dirichlet" in the PPBMH repo shows no results. |
I was clearly mistaken.
|
Would be cool to contribute, but I'll likely wait for the pymc3 port, as my pymc2 is a bit rusty. |
I wrote a post about implementing stick-breaking DP in PyMC 2 a couple years ago. |
@twiecki per Twitter